package com.qf.controller;


import com.qf.service.EmpManagerService;
import com.qf.service.EmpManagerServiceImpl;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

/**
 * 登录
 * @author 千锋健哥
 */
@WebServlet("/login")
public class LoginController extends HttpServlet {



    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1. 获取请求对象中的参数
        //获取用户名
        String username = req.getParameter("username");
        //获取密码
        String pwd = req.getParameter("pwd");
        //获取用户页面输入的验证码
        String code = req.getParameter("code");

        //获取session中的验证码
        HttpSession session = req.getSession();
        String codeSession = (String)session.getAttribute("code");

        //判断如果页面输入的验证码为空, 或者会话中的验证码为空, 跳转到登录页面重新登录
        if (code == null || codeSession == null){
            resp.sendRedirect("/login.html");
            return;
        }
        //判断如果验证码不正确, 跳转到登录页面重新登录
        if (!code.equalsIgnoreCase(codeSession)) {
            resp.sendRedirect("/login.html");
            return;
        }

        //3. 调用service执行用户名密码校验业务
        EmpManagerService empManagerService = new EmpManagerServiceImpl();
        boolean flag = empManagerService.login(username, pwd);

        //4. 判断登录是否成功, 如果不成功, 则重定向到登录页面重新登录, 如果成功, 将用户名记录到会话对象中保存.
        if(flag) {
            //将用户名记录到会话对象中保存, 并且跳转到列表页面
            //将用户名存入会话对象中
            session.setAttribute("token", username);
            //跳转到查询员工列表的controller中
            resp.sendRedirect("/empList");
        } else {
            //登录不成功, 重定向到登录页面重新登录
            resp.sendRedirect("/login.html");
        }


    }

}
